/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sn.dao;

import java.util.List;

/**
 * Donne une implémentation par défaut
 */
public interface GenericDAO<T> {
    
    /**
     * Créé ou met à jour une entité et renvoie la version managée
     * @param entity
     * @return entité managée
     */
    public T save(T entity);
    
    /**
     * Supprimer une entité
     * @param entity une entité managée ou non
     */
    public void delete(T entity);
    
    /**
     * Récupère une entité par son id
     * @param id
     * @return 
     */
    public T findById(Long id);
    
    /**
     * Récupère l'ensemble des entités
     * @return 
     */
    public List<T> findAll();
}
